﻿using System;
using System.Drawing;
using Zadani09.db;
using Zadani09.db.DAO;
using Zadani09.util;

namespace Zadani09
{
    public partial class Registrace : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            ButtonRegistrace.Click += new EventHandler(ButtonRegistrace_Click);
        }

        void ButtonRegistrace_Click(object sender, EventArgs e)
        {
            // ulozime pouze v pripade, ze jsou data od uzivatele validni
            if (!IsValid) return;

            string pJmeno = TextBoxPrihlasovaciJmeno.Text.Trim();
            string heslo = TextBoxHeslo.Text.Trim();
            string krestniJmeno = TextBoxKrestniJmeno.Text.Trim();
            string prijmeni = TextBoxPrijmeni.Text.Trim();
            string ulice = TextBoxUlice.Text.Trim();
            string mesto = TextBoxMesto.Text.Trim();
            string psc = TextBoxPSC.Text.Trim();
            string email = TextBoxEmail.Text.Trim();
            string popisne = TextBoxPopisne.Text.Trim();



            //nektere z nich nemusi byt vyplneny
            if (krestniJmeno.Length < 1) krestniJmeno = Constants.NEVYPLNENO_TEXT;
            if (prijmeni.Length < 1) prijmeni = Constants.NEVYPLNENO_TEXT;
            if (ulice.Length < 1) ulice = Constants.NEVYPLNENO_TEXT;
            if (mesto.Length < 1) mesto = Constants.NEVYPLNENO_TEXT;
            if (psc.Length < 1) psc = Constants.NEVYPLNENO_CISLO.ToString();
            if (popisne.Length < 1) popisne = Constants.NEVYPLNENO_CISLO.ToString();


            //dame uzivateli unikatni id
            // uint unikatniID = uint.Parse(Util.generateRandomID());

            Uzivatel uzivatel = new Uzivatel();
            //      uzivatel.IDUzivatel = unikatniID;
            uzivatel.Jmeno = krestniJmeno;
            uzivatel.Prijmeni = prijmeni;
            uzivatel.LoginUzivatel = pJmeno;
            uzivatel.Email = email;
            uzivatel.Stav = Uzivatel.AKTIVNI; //misto enumu, dve konstanty v uzivatel tride...
            uzivatel.PosledniZmenaHesla = DateTime.Now;
            uzivatel.LoginHesloHash = heslo; //tady to bude chtit MD5 hash funkci na to nejakou...
            uzivatel.Mesto = mesto;
            uzivatel.PSC = psc;
            uzivatel.Ulice = ulice;
            uzivatel.Popisne = uint.Parse(popisne);

            DAOTovarna.instance.getUzivatelDAO().create(uzivatel); //ulozit do db..

            InfoLabel.ForeColor = Color.Green;
            InfoLabel.Text = "Byl jste uspěšně zaregistrován";
            //a mozna nejaky forward na success stranku..

            //po uspesne registraci, pomazani hodnot, ktere by tam normalne zustaly..
            //nevim proc, ale tohle mi nechodi..
            this.ClearChildState();
            vycistiFormular();

        }

        private void vycistiFormular()
        {
            TextBoxEmail.Text = string.Empty;
            TextBoxKrestniJmeno.Text = string.Empty;
            TextBoxMesto.Text = string.Empty;
            TextBoxPrijmeni.Text = string.Empty;
            TextBoxPSC.Text = string.Empty;
            TextBoxUlice.Text = string.Empty;
            TextBoxPrihlasovaciJmeno.Text = string.Empty;
            TextBoxPopisne.Text = string.Empty;
            
        }
    
    }
}
